其他
开源定义是什么?为什么OSI不接受SSPL?
The following article is from 微月人话 Author 卫剑钒
在过去三年中,市场不断发展,社区逐渐认识到,开源公司只有更好地保护自己的软件,才能保持高水平的投资和创新。随着以 SaaS 作为交付模式的转变,一些云服务提供商利用了开源产品的优势,将其作为一项服务对外提供,而不向社区提供任何回馈。这种做法转移了本可以再投资到产品上的资金,损害了用户和社区的利益。 从即将发布的 Elastic 7.11 版开始,我们将把根据 Apache 2.0 许可授权的 Elasticsearch 和 Kibana 源代码变更为双重授权许可模式(即 SSPL + Elastic 许可),以便用户选择适合自己的许可。SSPL 是 MongoDB 原创的一个可获得源代码的许可,它既体现了开放原则,同时又起到了保护作用,防止公共云提供商在不向社区提供任何回馈的情况下将开源产品作为一项服务对外提供。SSPL 虽然允许免费随意地使用及修改产品源代码,但有一个基本要求,也就是,在 SSPL 协议下,如果您将产品作为服务对外提供,则必须同时公开发布任何修改以及您自己管理层的源代码。
OSI(Open Source Initiative)即开放源代码促进会,于1998年2月成立,创始人为大名鼎鼎的Bruce Perens和人称黑客长老的Eric S. Raymond。它维护着开源定义(OSD)以及其认可的开源许可证列表4。OSI的目标是促进和保护开源软件及开源社区。
虽然那些切换到伪开源许可证的公司声称,他们的产品在新许可证下继续保持“开放”(open),但新许可证实际上剥夺了用户权利。 Elastic公司的这个举动,并不意味着开源许可模式的失败或不足,只能说明Elastic目前的商业模式和开源许可证的设计不一致,他们需要的是专有许可证(虽然也是源码可用的)。
以下,“该软件”、“该程序”、“该作品”,指的都是许可证所保护的软件。“被许可人”、“接收者”、“用户”指的都是使用该软件的人(包括法人)。“发行”、“发布”、“分发”都是一个意思。以下,“该软件”、“该程序”、“该作品”,指的都是许可证所保护的软件。“被许可人”、“接收者”、“用户”指的都是使用该软件的人(包括法人)。“发行”、“发布”、“分发”都是一个意思。
OSD1. 分发自由
1. Free Redistribution
The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale.
OSD2. 源代码
2. Source Code
The program must include source code, and must allow distribution in source code as well as compiled form. Where some form of a product is not distributed with source code, there must be a well-publicized means of obtaining the source code for no more than a reasonable reproduction cost, preferably downloading via the Internet without charge. The source code must be the preferred form in which a programmer would modify the program. Deliberately obfuscated source code is not allowed. Intermediate forms such as the output of a preprocessor or translator are not allowed.
允许
以源码或目标码形式发布,而不是必须带源码,这就使得MIT、Apache这种许可证满足这条,因为这类宽松许可证,对别人再次分发时带不带源码,是不作要求的。(GPL则是强制要求的。)OSD3. 衍生作品
3. Derived Works
The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.
注意:sublicense,根据Black's Law Dictionary,是指“A license or contract granting to a third party a portion or all of the rights granted to the licensee under an original license。”也即sublicense是指被原始许可的人,可以向第三方进行再次许可,许可的内容是他获得的全部或部分权利。
OSD4. 原作者源码的完整性
4. Integrity of The Author's Source Code
The license may restrict source-code from being distributed in modified form only if the license allows the distribution of "patch files" with the source code for the purpose of modifying the program at build time. The license must explicitly permit distribution of software built from modified source code. The license may require derived works to carry a different name or version number from the original software.
OSD5. 不歧视个人或团体
5. No Discrimination Against Persons or Groups
The license must not discriminate against any person or group of persons.
OSD6. 不歧视任何领域
6. No Discrimination Against Fields of Endeavor
The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.
ICE是美国911恐怖袭击之后成立的部门,主要用于移民相关的国内调查和执法和调查,有羁押和遣送非法移民的权力,ICE采取了一种被称作”亲子分离“的政策,就是一旦抓住非法移民,就把大人和孩子分开关押,很多孩子因此和父母完全失去联系,还有数百名儿童彻底和父母失联,流入美国儿童收养系统。这种政策激起了巨大的社会反感,Abolish ICE运动因此开始。 在Abolish ICE过程中,人们发现ICE科技水平颇高,而且一线互联网和软件公司都在为他们提供服务,从软件到AI,基本上各种高科技用全了,抓人效率前所未有的高。而这些软件,绝大多数是基于开源软件和自由软件开发的。所以除了抗议各大厂商之外,开源社区中开始有了“能不能想个办法不让ICE用我们写的程序”相关讨论。 javascript包管理工具lerna成为了第一个行动者,他们修改了自己的开源协议,把包括微软、亚马逊在内的一堆公司列入了“因协助ICE而禁止使用”范围。但这显然是不符合OSD6的,Eric Raymond为此发表文章:“非歧视条款是开源软件的核心价值”。一天之后,lerna恢复了原始的MIT许可证,并且为此道歉。
—以上摘自“围绕RMS、开源、自由软件的两场'战争'”6
OSD7. 许可的分发
7. Distribution of License
The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties.
OSD8. 许可不能针对特定产品
8. License Must Not Be Specific to a Product
The rights attached to the program must not depend on the program's being part of a particular software distribution. If the program is extracted from that distribution and used or distributed within the terms of the program's license, all parties to whom the program is redistributed should have the same rights as those that are granted in conjunction with the original software distribution.
OSD9. 许可证不能限制其他软件
9. License Must Not Restrict Other Software
The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be open-source software.
OSD10. 不能以专门的技术或界面完成授权
10. License Must Be Technology-Neutral
No provision of the license may be predicated on any individual technology or style of interface.
毕竟人人都愿意站在巨人肩上。
SSPL 13. Offering the Program as a Service
If you make the functionality of the Program or a modified version available to third parties as a service, you must make the Service Source Code available via network download to everyone at no charge, under the terms of this License. Making the functionality of the Program or modified version available to third parties as a service includes, without limitation, enabling third parties to interact with the functionality of the Program or modified version remotely through a computer network, offering a service the value of which entirely or primarily derives from the value of the Program or modified version, or offering a service that accomplishes for users the primary purpose of the Program or modified version.
“Service Source Code” means the Corresponding Source for the Program or the modified version, and the Corresponding Source for all programs that you use to make the Program or modified version available as a service, including, without limitation, management software, user interfaces, application program interfaces, automation software, monitoring software, backup software, storage software and hosting software, all such that a user could run an instance of the service using the Service Source Code you make available.
此句来自faker.js的维护者 Marak,他伤透了心之后,在github项目下发帖子7,决定“我不再免费为世界500强公司工作了,要么给我一份年薪六位数的合同,要么 fork 这个项目然后自己维护去”。这个帖子的标题就叫做“No more free work from Marak - Pay Me or Fork This”。—摘自《开源社区的暗面》8
文|卫剑钒
https://mp.weixin.qq.com/s/_1Dbc6FyUQUvOqk6nFKMTw
https://www.elastic.co/cn/blog/licensing-change
https://opensource.org/node/1099
https://opensource.org/licenses/category
https://opensource.org/osd-annotated
https://mp.weixin.qq.com/s/Kr0FzkpA-EHT51F7PVX76A
https://github.com/Marak/faker.js/issues/1046
https://mp.weixin.qq.com/s/2kYb93_V3TMdgKFAV3HG4Q
https://mp.weixin.qq.com/s/y6rysKAifxefqfhSzcQcHg
https://mp.weixin.qq.com/s/IiM63raAH38rEoSUScR-eQ
https://opensource.org/licenses/MulanPSL-2.0
往期精彩回顾